home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 1
/
Cream of the Crop 1.iso
/
PROGRAM
/
LDB171.ARJ
/
FBINDER.CPP
< prev
next >
Wrap
C/C++ Source or Header
|
1992-05-12
|
2KB
|
111 lines
/*
FBinder.cpp -- Loose Data Binder v 1.7:
container class "form."
(C) Copyright 1992 John W. Small
All rights reserved
PSW / Power SoftWare
P.O. Box 10072
McLean, Virginia 22102 8072 USA
(703) 759-3838
See notes in fbinder.hpp!
*/
#ifndef FBinder_HPP
#include "FBinder.hpp"
#endif
int FBinder::initData(/* FBinder-declared data
member initializers */)
{
// initialize any FBinder-declared data
// members here
return 1; // success
}
voiD FBinder::Dassign(voiD D, const voiD S)
{
// invokes FType's overloaded operator=()
(*(FType *)D) = (*(FType *)S);
return D;
}
voiD FBinder::Dnew(const voiD D)
{
// invokes FType's copy initializer constructor
return (voiD) new FType(*(FType *)D);
}
void FBinder::Ddelete(voiD D)
{
// invokes FType's destructor
delete (FType *) D;
}
void FBinder::Dstore(ostream& os, voiD D)
{
// invokes operator<<(ostream&,FType&)
os << *(FType *)D << BDRendm;
}
voiD FBinder::Dload(istream& is)
{
FType tmp;
is >> tmp >> BDRnextm;
return (voiD) new FType(tmp);
}
void FBinder::store(ostream& os)
{
Binder::store(os);
// os << FBinder-declared data members << BDRendm;
// if (!os)
// berror("unable to store FBinder "
// "data on stream");
}
FBindeR FBinder::load(istream& is, FBindeR thiS)
{
int newed;
// is >> FBinder-declared data member initializers
// >> BDRnextm;
// if (!is) {
// sberror("unable to load FBinder "
// "data from stream");
// return FBindeR0;
// }
if (thiS)
newed = 0;
else {
if ((thiS = new FBinder(initVFTsOnly))
== FBindeR0) {
sberror("unable to construct "
"new FBinder for "
"loading");
return FBindeR0;
}
newed = 1;
}
if (!Binder::load(is,(BindeR)thiS)) {
if (newed)
delete (voiD) thiS;
return FBindeR0;
}
if (!thiS->initData(/* FBinder-declared data
member initializers */)) {
sberror("nunable to initialize FBinder "
"from reloaded stream data");
if (newed)
delete (voiD) thiS;
return FBindeR0;
}
return thiS;
}